package zblibrary.facechat.viewmodel;

import androidx.databinding.Observable;
import androidx.databinding.ObservableList;

import java.util.List;

import zblibrary.facechat.entity.BannerEntity;
import zblibrary.facechat.entity.FunctionItemEntity;
import zblibrary.facechat.entity.HomeListEntity;
import zblibrary.facechat.mvvm.binding.IBinding;

public interface IHomeViewModel extends IBinding {
    //页面刷新
    void startRefresh(boolean notify);
    // 获取BannerList
    List<BannerEntity> getBannerList();
    // 刷新数据
    void refreshData();
    // 加载Banner
    void loadBanner();
    // 为BannerList添加监听器
    void addBannerListChangedCallback(ObservableList.OnListChangedCallback callback);
    // 监听HomeFragment的数据
    void addHomeEntityChangedCallback(Observable.OnPropertyChangedCallback callback);
    // 处理Banner点击事件
    void onBannerItemClick(BannerEntity entity);
    // 获取功能区域列表
    List<FunctionItemEntity> getFunctionList();
    // 监听功能列表数据
    void addFunctionListChangedCallback(ObservableList.OnListChangedCallback callback);
    // 处理功能区域点击事件
    void onFunctionItemClick(FunctionItemEntity entity);
    // 获取首页列表
    List<HomeListEntity> getHomeList();
    // 对首页列表数据监听
    void addHomeListChangedCallback(ObservableList.OnListChangedCallback callback);
    // 刷新首页主列表数据
    void loadHomeData();
    // 新鲜的和附近的列表切换
    void changeHomeData(int position);
    // 加载更多数据
    void loadMore();
}